#Les options de compilation
CCFLAGS=-W -Wall -O3
#les fichiers d'en-tete
INCFLAGS=-I inc/\
         `libpng-config --cflags`
#edition de liens
LDFLAGS=-lglut\
        -lGLU\
	-lGL\
	-lXext\
	-lX11\
	-lm\
	-ljpeg\
	`libpng-config --libs`

#les cibles
all : bin/scene\
      bin/moche\
      bin/soucoupe\
      bin/fumee\
      bin/neon\
      bin/appli\
      bin/glow\
      bin/information


archive : 
	rm obj/*.o bin/* *~ src/*~ inc/*~ obj/*~ bin/*~ || script.sh

clean : 
	rm obj/*.o bin/* *~ src/*~ inc/*~ obj/*~ bin/*~
#les regles de compilation

OBJ_FILES=obj/material.o\
	  obj/texture.o\
	  obj/objet.o\
	  obj/objet3D.o\
	  obj/mouseListener.o\
	  obj/mouseMotionListener.o\
	  obj/mousePassiveMotionListener.o\
          obj/keyboardListener.o\
	  obj/lumiere.o\
          obj/maLumiere.o\
          obj/scene.o\
	  obj/window.o\
	  obj/vertex.o\
          obj/revolutionObject.o\
          obj/teapot.o\
	  obj/soucoupe.o\
	  obj/plan.o\
	  obj/arbre.o\
	  obj/text.o\
	  obj/neon.o\
	  obj/timerListener.o\
	  obj/fumee.o\
	  obj/enib.o\
	  obj/billboard.o\
	  obj/cockpit.o\
	  obj/glowE.o\
	  obj/vent.o\
	  obj/pointeur.o\
	  obj/trajectoire.o\
	  obj/nuages.o\
	  obj/information.o



bin/appli : obj/appli.o ${OBJ_FILES}
	g++ obj/appli.o ${OBJ_FILES} -o $@ ${LDFLAGS}

bin/scene : obj/testScene.o ${OBJ_FILES}
	g++ obj/testScene.o ${OBJ_FILES} -o $@ ${LDFLAGS}
	
bin/neon : obj/testNeon.o ${OBJ_FILES}
	g++ obj/testNeon.o ${OBJ_FILES} -o $@ ${LDFLAGS}

bin/moche : moche.c
	gcc moche.c -o $@ ${LDFLAGS}
	
bin/soucoupe : obj/testSoucoupe.o ${OBJ_FILES}
	g++ obj/testSoucoupe.o -o $@ ${OBJ_FILES} ${LDFLAGS}

bin/fumee : obj/testFumee.o ${OBJ_FILES}
	g++ obj/testFumee.o -o $@ ${OBJ_FILES} ${LDFLAGS}

bin/glow : obj/glow.o ${OBJ_FILES}
	g++ obj/glow.o -o $@ ${OBJ_FILES} ${LDFLAGS}

bin/information : obj/testInformation.o ${OBJ_FILES}
	g++ obj/testInformation.o -o $@ ${OBJ_FILES} ${LDFLAGS}

obj/appli.o : appli.cpp
	g++ -c appli.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/testFumee.o : testFumee.cpp
	g++ -c testFumee.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/testScene.o : testScene.cpp
	g++ -c testScene.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/testNeon.o : testNeon.cpp
	g++ -c testNeon.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/testSoucoupe.o : testSoucoupe.cpp
	g++ -c testSoucoupe.cpp -o $@ ${INCFLAGS} ${CCFLAGS}


obj/testInformation.o : testInformation.cpp
	g++ -c testInformation.cpp -o $@ ${INCFLAGS} ${CCFLAGS}


obj/glow.o : glow.cpp
	g++ -c glow.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/scene.o : src/scene.cpp inc/objet.h inc/keyboardListener.h inc/mouseListener.h
	g++ -c src/scene.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/objet.o : src/objet.cpp inc/objet.h
	g++ -c src/objet.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/objet3D.o : src/objet3D.cpp inc/objet3D.h
	g++ -c src/objet3D.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/material.o : src/material.cpp inc/material.h
	g++ -c src/material.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/mouseListener.o : src/mouseListener.cpp inc/mouseListener.h
	g++ -c src/mouseListener.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/mouseMotionListener.o : src/mouseMotionListener.cpp inc/mouseMotionListener.h
	g++ -c src/mouseMotionListener.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/mousePassiveMotionListener.o : src/mousePassiveMotionListener.cpp inc/mousePassiveMotionListener.h
	g++ -c src/mousePassiveMotionListener.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/keyboardListener.o : src/keyboardListener.cpp inc/keyboardListener.h
	g++ -c src/keyboardListener.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/window.o : src/window.cpp inc/window.h
	g++ -c src/window.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/teapot.o : src/teapot.cpp inc/teapot.h
	g++ -c src/teapot.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/lumiere.o : src/lumiere.cpp inc/lumiere.h
	g++ -c src/lumiere.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/maLumiere.o : src/maLumiere.cpp inc/maLumiere.h
	g++ -c src/maLumiere.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/vertex.o : src/vertex.cpp inc/vertex.h
	g++ -c src/vertex.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/revolutionObject.o : src/revolutionObject.cpp inc/revolutionObject.h
	g++ -c src/revolutionObject.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/soucoupe.o : src/soucoupe.cpp inc/soucoupe.h
	g++ -c src/soucoupe.cpp -o $@ ${INCFLAGS} ${CCFLAGS}
	
obj/texture.o : src/texture.cpp inc/texture.h
	g++ -c src/texture.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/plan.o : src/plan.cpp inc/plan.h
	g++ -c src/plan.cpp -o $@ ${INCFLAGS} ${CCFLAGS}
	
obj/arbre.o : src/arbre.cpp inc/arbre.h
	g++ -c src/arbre.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/text.o : src/text.cpp inc/text.h
	g++ -c src/text.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/neon.o : src/neon.cpp inc/neon.h
	g++ -c src/neon.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/timerListener.o : src/timerListener.cpp inc/timerListener.h
	g++ -c src/timerListener.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/fumee.o : src/fumee.cpp inc/fumee.h
	g++ -c src/fumee.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/enib.o : src/enib.cpp inc/enib.h
	g++ -c src/enib.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/billboard.o : src/billboard.cpp inc/billboard.h
	g++ -c src/billboard.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/cockpit.o : src/cockpit.cpp inc/cockpit.h
	g++ -c src/cockpit.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/glowE.o : src/glow.cpp inc/glow.h
	g++ -c src/glow.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/vent.o : src/vent.cpp inc/vent.h
	g++ -c src/vent.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/pointeur.o : src/pointeur.cpp inc/pointeur.h
	g++ -c src/pointeur.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/trajectoire.o : src/trajectoire.cpp inc/trajectoire.h
	g++ -c src/trajectoire.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/information.o : src/information.cpp inc/trajectoire.h
	g++ -c src/information.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

obj/nuages.o : src/nuages.cpp inc/nuages.h
	g++ -c src/nuages.cpp -o $@ ${INCFLAGS} ${CCFLAGS}

